<?php

/**
 *      [Discuz!] (C)2001-2099 Comsenz Inc.
 *      This is NOT a freeware, use is subject to license terms
 *		has readed
 *      $Id: spacec  p_poke.php 34369 2014-04-01 02:00:04Z jeffjzhang $
 */

if(!defined('IN_DISCUZ')) {
    exit('Access Denied');
}

if (!$_G['setting']['friendstatus']) {
    showmessage('friend_status_off');
}

$uid = empty($_GET['uid'])?0:intval($_GET['uid']);

if($uid == $_G['uid']) {
    showmessage('not_to_their_own_greeted');
}

if($op == 'send' || $op == 'reply') {

    if(!checkperm('allowpoke')) {
        showmessage('no_privilege_poke');
    }

    cknewuser();

    $tospace = array();

    if($uid) {
        $tospace = getuserbyuid($uid);
    } elseif ($_POST['username']) {
        $tospace = C::t('common_member')->fetch_uid_by_username($_POST['username']);
    }

    if($tospace && isblacklist($tospace['uid'])) {
        showmessage('is_blacklist');
    }

    if(submitcheck('pokesubmit')) {
        if(empty($tospace)) {
            showmessage('space_does_not_exist');
        }

        $notetext = censor(htmlspecialchars(cutstr($_POST['note'], strtolower(CHARSET) == 'utf-8' ? 30 : 20, '')));
        $setarr = array(
            'pokeuid' => $uid+$_G['uid'],
            'uid' => $uid,
            'fromuid' => $_G['uid'],
            'note' => $notetext, //need to do
            'dateline' => $_G['timestamp'],
            'iconid' => intval($_POST['iconid'])
        );
        C::t('home_pokearchive')->insert($setarr);

        $setarr = array(
            'uid' => $uid,
            'fromuid' => $_G['uid'],
            'fromusername' => $_G['username'],
            'note' => $notetext,
            'dateline' => $_G['timestamp'],
            'iconid' => intval($_POST['iconid'])
        );

        C::t('home_poke')->insert($setarr, false, true);

        require_once libfile('function/friend');
        friend_addnum($tospace['uid']);

        if($op == 'reply') {
            C::t('home_poke')->delete_by_uid_fromuid($_G['uid'], $uid);
            C::t('common_member')->increase($_G['uid'], array('newprompt' => -1));
        }
        updatecreditbyaction('poke', 0, array(), $uid);

        if($setarr['iconid']) {
            require_once libfile('function/spacecp');
            $pokemsg = makepokeaction($setarr['iconid']);
        } else {
            $pokemsg = lang('home/template', 'say_hi');
        }
        if(!empty($setarr['note'])) {
            $pokemsg .= ', '.lang('home/template', 'say').':'.$setarr['note'];
        }

        $note = array(
            'fromurl' => 'home.php?mod=space&uid='.$_G['uid'],
            'fromusername' => $_G['username'],
            'fromuid' => $_G['uid'],
            'from_id' => $_G['uid'],
            'from_idtype' => 'pokequery',
            'pokemsg' => $pokemsg
        );
        notification_add($uid, 'poke', 'poke_request', $note);

        include_once libfile('function/stat');
        updatestat('poke');

        showmessage('poke_success', dreferer(), array('username' => $tospace['username'], 'uid' => $uid, 'from' => $_GET['from']), array('showdialog'=>1, 'showmsg' => true, 'closetime' => true));

    }

}//好友列表-互动-打招呼或通知-坛友互动-打招呼-回打招呼
elseif($op == 'ignore') {
    if(submitcheck('ignoresubmit')) {
        $where = empty($uid)?'':"AND fromuid='$uid'";
        C::t('home_poke')->delete_by_uid_fromuid($_G['uid'], $uid);

        C::t('home_notification')->delete_by_uid_type_authorid($_G['uid'], 'poke', $uid);

        showmessage('has_been_hailed_overlooked', '', array('uid' => $uid, 'from' => $_GET['from']), array('showdialog'=>1, 'showmsg' => true, 'closetime' => true, 'alert' => 'right'));
    }

}//通知-坛友互动-打招呼-忽略
elseif($op == 'view') {

    $_GET['uid'] = intval($_GET['uid']);

    $list = array();
    foreach(C::t('home_poke')->fetch_all_by_uid_fromuid($space['uid'], $_GET['uid']) as $value) {
        $pokeuid = $value['uid']+$value['fromuid'];

        $value['uid'] = $value['fromuid'];
        $value['username'] = $value['fromusername'];

        require_once libfile('function/friend');
        $value['isfriend'] = $value['uid']==$space['uid'] || friend_check($value['uid']) ? 1 : 0;

        foreach(C::t('home_pokearchive')->fetch_all_by_pokeuid($pokeuid) as $subvalue) {
            $list[$subvalue['pid']] = $subvalue;
        }

    }

}//收到的招呼-查看所有招呼
else {

    $perpage = 20;
    $perpage = mob_perpage($perpage);

    $page = empty($_GET['page'])?0:intval($_GET['page']);
    if($page<1) $page = 1;
    $start = ($page-1)*$perpage;
    ckstart($start, $perpage);

    $fuids = $list = array();
    $count = C::t('home_poke')->count_by_uid($space['uid']);
    if($count) {
        foreach(C::t('home_poke')->fetch_all_by_uid($space['uid'], $start, $perpage) as $value) {
            $value['uid'] = $value['fromuid'];
            $value['username'] = $value['fromusername'];

            $fuids[$value['uid']] = $value['uid'];
            $list[$value['uid']] = $value;
        }
        if($fuids) {
            require_once libfile('function/friend');
            friend_check($fuids);

            $value = array();
            foreach($fuids as $key => $fuid) {
                $value['isfriend'] = $fuid==$space['uid'] || $_G["home_friend_".$space['uid'].'_'.$fuid] ? 1 : 0;
                $list[$fuid] = array_merge($list[$fuid], $value);
            }

        }
    }
    $multi = multi($count, $perpage, $page, "home.php?mod=spacecp&ac=poke");

}//收到的招呼

$actives = array($op=='send'?'send':'poke' =>' class="a"');

include_once template('home/spacecp_poke');

?>